package structure.proxy.dynamic;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

/**
 * Created by lie on 2017/10/31.
 * 动态的代理
 * 小刘升级了，现在屌了，不止代理卖房了，啥都代理了
 * 所以要判断一下进来的是什么业务，再根据业务来做不同的操作
 */
public class DynamicProxyLiu implements InvocationHandler{

    private Object target;

    public DynamicProxyLiu(Object target){
        this.target=target;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

        if ("sell".equals(method.getName())) {
            //其他业务，小刘还不熟悉，但是卖房还是杠杠的，所以判断出是卖房，马上来一手
            System.out.println("先收一笔中介费，不多就 2% 吧");
            System.out.println("好，我保证这笔交易的安全——增强功能");
            System.out.println("好，并且中间的手续和流程，我全包了");
        }

        Object result = method.invoke(target, args);
        return result;
    }
}
